"""
装饰器写法：注意和闭包区分
================================================
- 什么是装饰器
1. 装饰器就是使用创建一个闭包函数，在闭包函数内调用目标函数
2. 可以达到不改变目标函数的同时，增加额外功能

================================================
- 装饰器的写法
如下

"""


def outer(func):
    def inner():
        print("我要睡觉啦")
        func()
        print("我要起床啦")

    return inner


# @outer 装饰了sleep() 函数，底层：sleep = function_out(sleep)
@outer
def sleep():
    import time
    import random

    print("睡觉中....")
    time.sleep(random.randint(1, 5))


sleep()
